Интеграция адаптивного Bootstrap шаблона сайта в 1С-Битрикс по шагам - УРОК 0


Первоначально я не планировал написания вводного урока, описывающего процесс установки 1С-Битрикс, разбитие шаблона на блоки или какие-то другие вещи, однако в процессе интеграции данного шаблона было обнаружено, что он значительно сложнее по своей структуре, чем показалось на первый взгляд. В связи с этим необходимо сделать небольшое введение и описать как устроен шаблон в 1С-Битрикс и как мы разбиваем свой шаблон на блоки, дабы в будущем избежать этих вопросов.


Шаблон и страница с точки зрения 1С-Битрикс

большинство страниц сайта 1С-Битрикс являются php файлами, в которых можно выделить 3 ключевых части:

Header'а, рабочей области с контентом и Footer'а:

<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");?>
контент страницы (рабочая область)
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>

Это определяет структуру шаблона, который фактически состоит из 2 файлов: headre.php и footer.php, между которыми располагается контент или рабочая область страницы.

Естественно при редактировании шаблона через административный интерфейс мы этого не видим, а видим целый код шаблона, внутри которого находится маркер #WORKAREA# - рабочая область для контента страницы, фактически место разрыва меду footer.php и header.php.

Как в шаблоне, так и в рабочей области могут находиться компоненты, текст и включаемые области (которые в свою очередь могут содержать разметку, текст, компоненты и т.п.). Однако в точки зрения удобства работы контент-редакторов (и администраторов) во включаемых областях, и тем более в рабочей области количество html разметки следует снизить до необходимого минимума, а желательно вообще исключить (чтобы редакторы правили только текст).

В рамках данного цикла статей мы рассмотрим пошаговую интеграцию шаблона с этапа html+css вёрстки до готового шаблона 1С-Битрикс со всеми компонентами.

Шаблоны страниц сайта

Отдельно следует упомянуть шаблоны страниц и областей. Сравнительно редко использующийся сейчас функционал по сути своей представляет "заголовки", которые могут содержать разметку и даже демо-контент, используемые при создании новых страниц или включаемых областей.

Естественно все стили, применяемые к данной разметке должны быть описаны в CSS шаблона сайта, а использование шаблонов страниц возможно только в разделах, к которым применён конкретный шаблон сайта (шаблоны страниц хранятся внутри шаблон сайта).

Обычно в их использовании нет нужды, поскольку рабочая область представляет из себя просто оформленный блок, а отдельное оформление используется только у конкретных компонентов (например список элементов торгового каталога может выводиться в 4 колонки, хотя обычно текст оформлен в 1 большой широкий блок) и не требует корректировки контент-редактора. Если же в каких-то разделах используется дополнительный блок, то он реализуется через включаемую область, показывающуюся для конкретных разделов или страниц.


Шаблон сайта Stylish

ИСХОДНЫЙ КОД ШАБЛОНА

Я рекомендую всем желающим научиться этому процессу скачать исходные материалы и самостоятельно воспроизводить все действия, описанные в уроках.

Как можно заметить шаблон представляет из себя очень сложную структуру:

  • Красный - header.php
  • Жёлтый - footer.php
  • Зелёный - WorkArea (рабочая область или контент)
  • Синий - Может быть отнесено как к headre.php/footer.php, так и к рабочей области, поскольку содержит контент, вероятно используемый только в подразделе. Однако в силу особенностей вёрстки Boottstrap (а мы будем стараться выносить в редактируемые контент-редактором области минимум разметки) и для большей универсальности выгоднее эти области включить в состав включаемых областей в шаблоне (header.php/footer.php)

index

index-1

index-2

index-3

index-4

index-5

index-6

404

Светло-голубым размечено разбиение включаемых областей и рабочей области на блоки:

  • index - 2+1 - левый блок содержит 2 колонки, правый 1.
  • 1 - 2+1
  • 2 - 1+2 (левый блок содержит 1 колонку, правый 2) в рабочей области и 2+1 во включаемой области
  • 3 - 3 колонки в рабочей области и 4 колонки во включаемой области
  • 4 - по 4 колонки в ряд
  • 5 - 1+1 левая (левая колонка меньше правой)
  • 6 - 2 колонки
  • 404 - 1+1 правая (левая колонка больше правой)

ИТОГО получаем 7 типов оформления рабочих областей и страниц с точки зрения разметки (часть из этого богатства, например 4 колонки, будет реализовано компонентами, однако имеет смысл создать все 7 типов шаблонов страниц + 8й дефолтный).

Почему шаблоны страниц, а не шаблоны сайтов или включаемые области?

Каждый разработчик принимает это решение самостоятельно, однако на наш взгляд несколько шаблонов сайтов - дурной тон, если разница между ними в 1-2 блоках.

С другой стороны, использование большого количества включаемых областей затрудняет редактирование контент-редакторами. Файлы включаемых областей существуют только с точки зрения файловой (а не логической) системы сайта и создаваться должны несколько иначе, нежели обычные страницы (например в них нельзя повторно подключать header и footer во избежании рекурсии). Файлы включаемых областей можно найти только по характерному имени файла и это повышает требования к подготовке контент-редакторов (в то время как через логическую структуру человек просто создаёт страницу и не задумывается о её названии).

К сожалению, это решение имеет свою цену - у нас будет много шаблонов страниц, а значит, придётся учить пользователей ими пользоваться (если им предстоит создавать страницы). Так же, мы повышаем риск повреждения вёрстки неосторожным редактором контента, решившим поправить html вёрстку рабочей области (лишний открытый или недостающий закрытый теги могут привести к серьёзным проблемам на уровне всего сайта).

О правильности или ошибочности принятого решения мы узнаем значительно позже, на этапе реализации проекта (и на значительно более позднем уроке), что теоретически может плачевно сказаться на судьбе идеи данного курса. Однако, такова же и цена ошибки на ранних этапах любого проекта - приняв неверное архитектурное решение вы заранее обрекаете проект на провал. Поэтому постарайтесь подойти к проектированию ответственно и не жалеть времени.

Примечание
Вполне вероятно, в процессе разработки шаблона сайта вы придёте к решению, что часть шаблонов страниц имеет очень узкое применение и реализуете данные стили оформления в рамках конкретных страниц. Однако сейчас на раннем этапе мы действуем не обращая на это внимание.


В следующем уроке мы  рассмотрим первичную интеграцию статической вёрстки (т.е. просто создадим шаблон содержащий разметку и стили, пока без динамических компонентов).


Интеграция адаптивного Bootstrap шаблона сайта в 1С-Битрикс по шагам - УРОК 0

<p style="text-align: justify;"><i>Первоначально я не планировал написания вводного урока, описывающего процесс установки 1С-Битрикс, разбитие шаблона на блоки или какие-то другие вещи, однако в процессе интеграции данного шаблона было обнаружено, что он значительно сложнее по своей структуре, чем показалось на первый взгляд. В связи с этим необходимо сделать небольшое введение и описать как устроен шаблон в 1С-Битрикс и как мы разбиваем свой шаблон на блоки, дабы в будущем избежать этих вопросов.</i></p> <p style="text-align: justify;"> <br /> </p> <h2>Шаблон и страница с точки зрения 1С-Битрикс</h2> <p style="text-align: justify;">большинство страниц сайта 1С-Битрикс являются php файлами, в которых можно выделить 3 ключевых части:</p> <p style="text-align: justify;">Header'а, рабочей области с контентом и Footer'а:</p> <table border="1" cellpadding="5" cellspacing="0"> <tbody> <tr><td> <div>&lt;?require($_SERVER[&quot;DOCUMENT_ROOT&quot;].&quot;/bitrix/header.php&quot;);?&gt;</div> контент страницы (рабочая область) <br /> &lt;?require($_SERVER[&quot;DOCUMENT_ROOT&quot;].&quot;/bitrix/footer.php&quot;);?&gt;</td></tr> </tbody> </table> <p style="text-align: justify;">Это определяет структуру шаблона, который фактически состоит из 2 файлов: headre.php и footer.php, между которыми располагается контент или рабочая область страницы.</p> <p style="text-align: justify;">Естественно при редактировании шаблона через административный интерфейс мы этого не видим, а видим целый код шаблона, внутри которого находится маркер #WORKAREA# - рабочая область для контента страницы, фактически место разрыва меду footer.php и header.php.</p> <p style="text-align: justify;">Как в шаблоне, так и в рабочей области могут находиться компоненты, текст и включаемые области (которые в свою очередь могут содержать разметку, текст, компоненты и т.п.). Однако в точки зрения удобства работы контент-редакторов (и администраторов) во включаемых областях, и тем более в рабочей области количество html разметки следует снизить до необходимого минимума, а желательно вообще исключить (чтобы редакторы правили только текст).</p> <p style="text-align: justify;">В рамках данного цикла статей мы рассмотрим пошаговую интеграцию шаблона с этапа html+css вёрстки до готового шаблона 1С-Битрикс со всеми компонентами.</p> <h3>Шаблоны страниц сайта</h3> <p style="text-align: justify;"> Отдельно следует упомянуть шаблоны страниц и областей. Сравнительно редко использующийся сейчас функционал по сути своей представляет &quot;заголовки&quot;, которые могут содержать разметку и даже демо-контент, используемые при создании новых страниц или включаемых областей. </p> <p style="text-align: justify;">Естественно все стили, применяемые к данной разметке должны быть описаны в CSS шаблона сайта, а использование шаблонов страниц возможно только в разделах, к которым применён конкретный шаблон сайта (шаблоны страниц хранятся внутри шаблон сайта).</p> <p style="text-align: justify;">Обычно в их использовании нет нужды, поскольку рабочая область представляет из себя просто оформленный блок, а отдельное оформление используется только у конкретных компонентов (например список элементов торгового каталога может выводиться в 4 колонки, хотя обычно текст оформлен в 1 большой широкий блок) и не требует корректировки контент-редактора. Если же в каких-то разделах используется дополнительный блок, то он реализуется через включаемую область, показывающуюся для конкретных разделов или страниц.</p> <p style="text-align: justify;"> <br /> </p> <h2>Шаблон сайта Stylish</h2> <p style="text-align: justify;"><a href="/upload/medialibrary/ba9/ba920fe0e44d7b1d774a42b45fa0bb64.rar" title="исходная HTML+CSS Вёрстка шаблона" >ИСХОДНЫЙ КОД ШАБЛОНА</a></p> <p style="text-align: justify;"><i>Я рекомендую всем желающим научиться этому процессу скачать исходные материалы и самостоятельно воспроизводить все действия, описанные в уроках.</i></p> <p style="text-align: justify;">Как можно заметить шаблон представляет из себя очень сложную структуру:</p> <ul> <li style="text-align: justify;"><font color="#ff0000"><b>Красный</b></font> - header.php</li> <li style="text-align: justify;"><b><font color="#fff100">Жёлтый</font></b> - footer.php</li> <li style="text-align: justify;"><b><font color="#00ff00">Зелёный</font></b> - WorkArea (рабочая область или контент)</li> <li style="text-align: justify;"><b><font color="#0000ff">Синий</font></b> - Может быть отнесено как к headre.php/footer.php, так и к рабочей области, поскольку содержит контент, вероятно используемый только в подразделе. Однако в силу особенностей вёрстки Boottstrap (а мы будем стараться выносить в редактируемые контент-редактором области минимум разметки) и для большей универсальности выгоднее эти области включить в состав включаемых областей в шаблоне (header.php/footer.php)</li> </ul> <p style="text-align: justify;"> </p> <p style="text-align: justify;"><a href="/upload/medialibrary/f1d/f1db3c6d218e415b8d527167d2cc5d8c.PNG" target="_blank" ><img src="/upload/medialibrary/f1d/f1db3c6d218e415b8d527167d2cc5d8c.PNG" title="index" hspace="5" vspace="5" border="0" alt="index" width="700" height="1079" /></a></p> <p style="text-align: justify;"><a href="/upload/medialibrary/59c/59c4fa90c0bd1a6b7b99dfef8f8cc0dd.png" target="_blank" ><img src="/upload/medialibrary/59c/59c4fa90c0bd1a6b7b99dfef8f8cc0dd.png" title="index-1" hspace="5" vspace="5" border="0" alt="index-1" width="700" height="856" /></a></p> <p style="text-align: justify;"><a href="/upload/medialibrary/ca7/ca759b290d5331b297d63e317682b1e3.png" target="_blank" ><img src="/upload/medialibrary/ca7/ca759b290d5331b297d63e317682b1e3.png" title="index-2" hspace="5" vspace="5" border="0" alt="index-2" width="700" height="755" /></a></p> <p style="text-align: justify;"><a href="/upload/medialibrary/993/993dc34009c4d8ec2e28f6f9f2fe4c51.png" target="_blank" ><img src="/upload/medialibrary/993/993dc34009c4d8ec2e28f6f9f2fe4c51.png" title="index-3" hspace="5" vspace="5" border="0" alt="index-3" width="700" height="777" /></a></p> <p style="text-align: justify;"><a href="/upload/medialibrary/85d/85dc220b9401c3457eb936a847c96174.png" target="_blank" ><img src="/upload/medialibrary/85d/85dc220b9401c3457eb936a847c96174.png" title="index-4" hspace="5" vspace="5" border="0" alt="index-4" width="700" height="804" /></a></p> <p style="text-align: justify;"> <a href="/upload/medialibrary/001/00133bf1db9b24c357bc002325ea09bc.png" target="_blank" ><img src="/upload/medialibrary/001/00133bf1db9b24c357bc002325ea09bc.png" title="index-5" hspace="5" vspace="5" border="0" alt="index-5" width="700" height="649" /></a> </p> <p style="text-align: justify;"><a href="/upload/medialibrary/2cf/2cff56b8a2dee9668ccc3dcb000f5c15.png" target="_blank" ><img src="/upload/medialibrary/2cf/2cff56b8a2dee9668ccc3dcb000f5c15.png" title="index-6" hspace="5" vspace="5" border="0" alt="index-6" width="700" height="626" /></a></p> <p style="text-align: justify;"><a href="/upload/medialibrary/42c/42c4261c4955b287f8f721c6cb9de978.png" target="_blank" ><img src="/upload/medialibrary/42c/42c4261c4955b287f8f721c6cb9de978.png" title="404" hspace="5" vspace="5" border="0" alt="404" width="700" height="555" /></a></p> <p style="text-align: justify;"><b><font color="#00ffff">Светло-голубым</font></b> размечено разбиение включаемых областей и рабочей области на блоки: </p> <ul> <li style="text-align: justify;">index - 2+1 - левый блок содержит 2 колонки, правый 1.</li> <li style="text-align: justify;">1 - 2+1</li> <li style="text-align: justify;">2 - 1+2 (левый блок содержит 1 колонку, правый 2) в рабочей области и 2+1 во включаемой области</li> <li style="text-align: justify;">3 - 3 колонки в рабочей области и 4 колонки во включаемой области</li> <li style="text-align: justify;">4 - по 4 колонки в ряд</li> <li style="text-align: justify;">5 - 1+1 левая (левая колонка меньше правой)</li> <li style="text-align: justify;">6 - 2 колонки</li> <li style="text-align: justify;">404 - 1+1 правая (левая колонка больше правой)</li> </ul> <p style="text-align: justify;"> </p> <p style="text-align: justify;">ИТОГО получаем 7 типов оформления рабочих областей и страниц с точки зрения разметки (часть из этого богатства, например 4 колонки, будет реализовано компонентами, однако имеет смысл создать все 7 типов шаблонов страниц + 8й дефолтный).</p> <h3>Почему шаблоны страниц, а не шаблоны сайтов или включаемые области?</h3> <p style="text-align: justify;">Каждый разработчик принимает это решение самостоятельно, однако на наш взгляд несколько шаблонов сайтов - дурной тон, если разница между ними в 1-2 блоках. </p> <p style="text-align: justify;">С другой стороны, использование большого количества включаемых областей затрудняет редактирование контент-редакторами. Файлы включаемых областей существуют только с точки зрения файловой (а не логической) системы сайта и создаваться должны несколько иначе, нежели обычные страницы (например в них нельзя повторно подключать header и footer во избежании рекурсии). Файлы включаемых областей можно найти только по характерному имени файла и это повышает требования к подготовке контент-редакторов (в то время как через логическую структуру человек просто создаёт страницу и не задумывается о её названии).</p> <p style="text-align: justify;">К сожалению, это решение имеет свою цену - у нас будет много шаблонов страниц, а значит, придётся учить пользователей ими пользоваться (если им предстоит создавать страницы). Так же, мы повышаем риск повреждения вёрстки неосторожным редактором контента, решившим поправить html вёрстку рабочей области (лишний открытый или недостающий закрытый теги могут привести к серьёзным проблемам на уровне всего сайта).</p> <p style="text-align: justify;"><i>О правильности или ошибочности принятого решения мы узнаем значительно позже, на этапе реализации проекта (и на значительно более позднем уроке), что теоретически может плачевно сказаться на судьбе идеи данного курса. Однако, такова же и цена ошибки на ранних этапах любого проекта - приняв неверное архитектурное решение вы заранее обрекаете проект на провал. <b>Поэтому постарайтесь подойти к проектированию ответственно и не жалеть времени.</b></i></p> <table border="1" cellpadding="5" cellspacing="0"> <tbody> <tr><td><b>Примечание</b> <br /> <div style="text-align: justify;">Вполне вероятно, в процессе разработки шаблона сайта вы придёте к решению, что часть шаблонов страниц имеет очень узкое применение и реализуете данные стили оформления в рамках конкретных страниц. Однако сейчас на раннем этапе мы действуем не обращая на это внимание.</div> </td></tr> </tbody> </table> <p style="text-align: justify;"> <br /> </p> <p style="text-align: justify;">В следующем уроке мы  рассмотрим первичную интеграцию статической вёрстки (т.е. просто создадим шаблон содержащий разметку и стили, пока без динамических компонентов).</p> <div style="text-align: right;"><a href="http://plus.google.com/+АлексейЗадойный?rel=author" target="_blank">Задойный А.В.</a></div>

Возврат к списку

Яндекс.Метрика